/* eslint-disable import/no-duplicates */
import router from '@/router'
// 用户接口
import { UserLoginRequest, UserBasicInformationRequest } from '@/api'
import { Message } from 'element-ui'
import { setToken, NameFn, IDFn } from '@/uilts/auth'

export default {
  namespaced: true,
  state: {
    // token值
    token: localStorage.getItem('token') || null,
    // 用户登录数据
    UserLoginData: JSON.parse(localStorage.getItem('saveUserData')) || null,
    // 导航列表
    NavList: [
      { id: '2', name: '工单管理', path: 'GD', svg: require('../../assets/SVG/工单管理.svg'), more: [{ id: '2-1', name: '运营工单', path: 'business' }, { id: '2-2', name: '运维工单', path: 'operation' }] },
      { id: '3', name: '点位管理', path: 'DW', svg: require('../../assets/SVG/点位管理.svg'), more: [{ id: '3-1', name: '区域管理', path: 'region' }, { id: '3-2', name: '点位管理', path: 'node' }, { id: '3-3', name: '合作商管理', path: 'partner' }] },
      { id: '4', name: '设备管理', path: 'SB', svg: require('../../assets/SVG/设备管理.svg'), more: [{ id: '4-1', name: '设备管理', path: 'equipment' }, { id: '4-2', name: '设备状态', path: 'status' }, { id: '4-3', name: '设备类型管理', path: 'type' }] },
      { id: '5', name: '人员管理', path: 'RY', svg: require('../../assets/SVG/人员管理.svg'), more: [{ id: '5-1', name: '人员管理', path: 'personnel' }, { id: '5-2', name: '人效统计', path: 'user-task-stats' }, { id: '5-3', name: '工作量列表', path: 'user-work' }] },
      { id: '6', name: '商品管理', path: 'SP', svg: require('../../assets/SVG/商品管理.svg'), more: [{ id: '6-1', name: '商品类型', path: 'sku-class' }, { id: '6-2', name: '商品管理', path: 'sku' }] },
      { id: '7', name: '策略管理', path: 'CL', svg: require('../../assets/SVG/策略管理.svg') },
      { id: '8', name: '订单管理', path: 'DD', svg: require('../../assets/SVG/订单管理.svg') },
      { id: '9', name: '对账统计', path: 'DZ', svg: require('../../assets/SVG/对账统计.svg') }
    ]
  },
  mutations: {
    // 保存token
    MasaveToken (state, Pstoken) {
      state.token = Pstoken
      localStorage.setItem('token', Pstoken)
      // cookie存放token
      setToken(Pstoken)
    },
    // 保存用户信息
    MaUserLoginData (state, UserData) {
      state.UserLoginData = UserData
      localStorage.setItem('saveUserData', JSON.stringify(UserData))
      // cookie存放用户名和ID
      NameFn(UserData.userName)
      IDFn(UserData.userId)
    }
  },
  actions: {
    // 登录
    async AcLoginRequestFn (store, Psform) {
      // 发送登录请求
      const res = await UserLoginRequest(Psform)
      if (res.data.msg === '登录成功') {
        Message({
          message: res.data.msg,
          type: 'success'
        })
        // 储存token和用户信息
        store.commit('MasaveToken', res.data.token)
        // 用户基本信息，请求拼接
        const res1 = await UserBasicInformationRequest(res.data.userId)
        store.commit('MaUserLoginData', { ...res.data, ...res1.data })
        // 跳转路由
        router.replace({
          name: 'home'
        })
        return
      }
      Message({
        message: res.data.msg,
        type: 'error'
      })
    }
  }
}
